﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright company="DHGMS Solutions" file="ApplicationInstanceMutexLock.cs">
//   2004-2012 DHGMS Solutions. Some Rights Reserved. Licensed under GNU General Public License version 2 (GPLv2)
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

namespace Dhgms.TplHelper.Model.Info
{
    /// <summary>
    /// Defines the possibilities for Application Instance Locking through a
    /// mutex.
    /// </summary>
    public enum ApplicationInstanceMutexLock
    {
        /// <summary>
        /// No Mutex Lock Applied.
        /// </summary>
        None, 

        /// <summary>
        /// Global Mutex lock is done on the fully qualified path of the executable.
        /// In order to run multiple copies, they must be in different folders.
        /// </summary>
        PerSystemFullyQualifiedPath, 

        /// <summary>
        /// Global Mutex lock is based on the Job guid.  In order to run multiple copies
        /// they need to be run on seperate machines
        /// </summary>
        PerSystemGuid, 

        /// <summary>
        /// Local (session id) Mutex lock is done on the fully qualified path of the executable.
        /// In order to run multiple copies, they must be in different folders.
        /// </summary>
        PerUserFullyQualifiedPath, 

        /// <summary>
        /// Local (session id) Mutex lock is based on the Job guid.  In order to run multiple copies
        /// they need to be run on seperate machines
        /// </summary>
        PerUserGuid
    }
}